The present disclosure relates to web applications, and more specifically, to techniques for deferring authentication and resource loading for a web application through the use of a local web server.
Today, many applications are designed to load resources from a remote server on the Internet. One advantage to such a design is that it allows for application content to be dynamically updated, without requiring each client application accessing the remote content to be individually updated. Moreover, such a design allows for a relatively thin client application, since the graphics, logic and other content can be loaded from the remote server. For example, the client application could consist primarily of a web browser configured to load web pages retrieved from the remote web server. In order to update such an application, developers can merely update the web pages on the remote web server, without having to update the web browser component.
In order to connect to the remote server, the client application may need to resolve the remote server's domain name to a specific IP address for the remote server. In some cases, multiple remote servers may exist and the domain name resolution process can return a list of multiple IP addresses for the multiple host servers. Upon receipt of the list of IP addresses in the local DNS resolver, the client application could select the first IP address in the list and could attempt to connect to the remote server using the selected address. However, if the client application fails to connect with the remote server using the IP addresses in the list (e.g., if a network connection used by the client application is experiencing problems), the client application may display an error message. In many situations, such an error message may provide an error code and a brief explanation of the error code. However, such error codes can appear cryptic to an unsophisticated user, which can diminish the user's experience of the client application and needlessly waste Internet resources (e.g., by making repeated requests to an unavailable IP address when a suitable alternative IP address is available).